Definition des GLMA/MAGL-Protokolls Dieses Protokoll dient zum Informationsaustausch zwischen GEMLABEL und einem (bzw. mehreren) Modul-Accessories und wird ber die AES Message-Que realisiert Fr das Protokoll werden Nachrichtennummern von 13000-13300 ver- wendet Diese Datei ist haupts„chlich fr Programmierer gedacht, die dieses Protokoll in eigenen Programmen oder MAs (Modulaccessories) unter- sttzen wollen Aufbau des Message-Buffers: 8 Worte: Msg%(0)-Msg%(7) (Basicschreibweise) int Msg%[7] (C-Schreibweise) In dieser Anleitung verwende ich die Basicschreibweise Nun zur Beschreibung der einzelnen Protokollfunktionen Nachrichtennamen die mit MA beginnen, werden von einem MA an Gemlabel geschickt, Nachrichtennummern die mit GM beginnen, werden von Gemlabel an ein MA geschickt In Msg%(0) befindet sich die Funktionsnummer, in Msg%(1) befindet sich die ID des Absenders der Nachricht. Alle anderen Msg%(X) die nicht angegeben sind, sind auf 0 zu setzen 13000 MG_AERROR Im MA ist ein Fehler aufgetreten. Falls auf eine Nach- richt des MA gewartet wird, muž abgebrochen werden 13001 MG_WVER šber diese Funktion kann die Version von GEMLABEL erfragt werden 13002 GM_VER Dies ist die Antwort auf MG_WVER Msg%(1)=Gemlabel-ID Msg%(2)=Version von Gemlabel ( 109=1.09, 221=2.21 ) Msg%(3)=Ascii-Wert der Programmart (F=Freeware, S=Shareware, P=Programmierer- version, ž=ž-Version) Msg%(4)=Oberes Wort des Datums Msg%(5)=Unteres Wort des Datums Format des Datums: $15051995 bzw. 0x15051995 bedeutet 15.05.1995 13003 SENDKEY Damit kann Gemlabel ein Tastendruck bergeben werden Msg%(2)=Scancode oder -1, wenn unbenutzt Msg%(3)=Asciicode oder -1, wenn unbenutzt Msg%(4)=Tastaturstatus (Scan, Shift, Ascii, ...), oder 0, wenn unbenutzt Msg%(5)=User-Magic-Code fr benutzerdefinierte Mit- teilungen im Msg%(6)+Msg%(7), oder 0, wenn unbenutzt Msg%(6)+Msg%(7)=Abh„ngig von Msg%(5) 13010 BGPRINT Druckt eine Datei im Hintergrund Die Datei wird Blockweise zum Drucker gesand ( Siehe GM_ASKPAR/MG_SENDPAR/GM_SENDPAR ) Msg%(2)=Puffergr”že in Byte, oder -1, wenn die aktuelle Konfiguration bernommen werden soll Msg%(3)=Zeitscheibe in ms, oder -1, wenn die aktuelle Konfiguration bernommen werden soll Msg%(4)=High-Word der Adresse des Dateinamens Msg%(5)=Low-Word der Adresse des Dateinamens Der Dateiname muž mit einem Null-Byte ab- geschlossen sein (C-String) Msg%(6)=1 Datei wird nach dem Druck gel”scht =0 Datei wird nach dem Druck nicht gel”scht Msg%(7)=Anzahl der Kopien bzw. der Ausdrucke 1=1 Ausdruck, 2=2 Ausdrucke, usw. Achtung ! : 0 darf nicht bergeben werden ! 13013 GM_ASKPAR Aktuelle Zeitscheibe in ms und Puffergr”že beim MA erfragen 13014 MG_SENDPAR Antwort des MA auf GM_ASKPAR Msg%(2)=Zeitscheibe in ms Fr diese Anzahl ms wird w„hrend des Ausdrucks ”fters Rechenzeit an die Hauptaplikation abge- geben Msg%(3)=Puffer in Byte So viele Bytes werden als 1 Block zum Drucker gesand 13015 GM_SENDPAR Aktuelle Parameter des MA einstellen Msg%(2)=Neue Zeitscheibe in ms, oder -1, falls diese nicht gesetzt werden soll Msg%(3)=Neue Pufferl„nge in Byte, oder -1, falls diese nicht gesetzt werden soll Msg%(4)-Msg%(7) mssen den Wert -3 haben ! 13028 MG_EPRINT Das MA hat den Ausdruck beendet Auf diese Nachricht muž bei Druck im Vordergrund gewartet werden ( Auf MG_AERROR auch ! ). Der Vordergrunddruck ist noch nicht eingebaut 13030 MG_ASK_CLIPBRD Adresse des GEMLABEL Klemmbrettpuffers erfragen 13031 GM_SEND_CLIPBRD Antwort auf MG_ASK_CLIPBRD Msg%(3)=High-Word der Adresse des Puffers Msg%(4)=Low-Word der Adresse des Puffers Dies ist der Stand des GLMA/MAGL-Protokolls am 27.05.95 GEMLABEL bzw. GLBL-Print untersttzen (teilweise) noch 2 weitere Protokolle: 1) CALCLOCK-Protokoll Dieses Protokoll stammt vom PC-GEM und wurde im Buch "Vom Anf„nger zum GEM-Profi" der Gebrder Geiž (erschienen im Hthig-Verlag) beschrieben Dieses Protokoll wird von GLBL-Print zum Hintergrunddruck untersttzt Benutzung des Protokolls: Man sucht mit Appl_Find nach der Applikation "CALCLOCK" ( desshalb heižt GLBL-Print auch CALCLOCK.ACC ) Erh„lt man eine ID zurck, schickt man CALCLOCK folgende Nachricht: Msg%(0)=100 Msg%(1)=ID des Absenders Msg%(2)=-1 Msg%(3)=L„nge des Dateinamens Msg%(4)=High-Word der Adresse des Dateinamens Msg%(5)=Low-Word der Adresse des Dateinamens Msg%(6)=Anzahl der Kopien bzw. Ausdrucke Msg%(7)=1 Datei wird nach dem Druck gel”scht =0 Datei wird nach dem Druck nicht gel”scht CALCLOCK sendet dann, nach Empfang der Nachricht, an Sie eine Rckmeldung: Msg%(0)=101 Msg%(1)=ID von CALCLOCK Msg%(2)-Msg%(7)=0 Auf diese Rckmeldung k”nnen Sie warten, oder auch nicht 2) VA/AV-Protokoll GEMLABEL und GLBL-Print untersttzen einige Funktionen dieses Protokolls, das von GEMINI her bekannt ist $4700 AV_PROTOKOLL (0x4700) Nachfrage, ob eine Applikation etwas von diesem Protokoll versteht Msg%(3)= Bit 0 gesetzt: Versteht VA_SETSTATUS Bit 1 gesetzt: Versteht VA_START Msg%(6)=High-Word der Adresse des ACC-Namens Msg%(7)=Low-Word der Adresse des ACC-Namens Der ACC-Name ist, wie bei Appl_Find, 8 Zeichen lang und mit einem Null- -Byte abgeschlossen ( C-String ) $4701 VA_PROTOSTATUS (0x4701) Antwort auf AV_PROTOKOLL Msg%(6)=High-Word der Adresse des Namens des Senders Msg%(7)=Low-Word der Adresse des Namens des Senders Zu Msg%(6)+Msg%(7) siehe auch AV_PROTOKOLL Die Bedeutung der Bits in Msg%(3)-Msg%(5) lesen Sie am besten in der Dokumentation zu GEMINI nach, da bei GEMLABEL/GLBL-Print keines davon gesetzt ist $4710 AV_SENDKEY (0x4710) Ein ACC sendet der Hauptapplikation einen Tastendruck Msg%(3)=Tastaturstatus Msg%(4)=Scancode der gedrckten Taste Diese Funktion wird von GEMLABEL nur fehlerhaft unter- sttzt, da bei GEMLABEL Tasturauswertung anders ist, als sie fr die korrekte Untersttzung dieser Funktion sein sollte. In einer Sp„teren Version von GEMLABEL werde ich das aber „ndern. Bis es soweit ist kann SENDKEY des GLMA/MAGL-Protokolls verwendet werden, das auch sp„ter noch funktionieren wird. $4711 VA_START (0x4711) Hiermit wird ein ACC aktiviert Wenn GEMLABEL diese Nachricht erh„lt wird die Toolbox das oberste Fenster ( Achtung GEMLABEL l„uft nicht als ACC, aber unter einer Multitasking umgebung k”nnte es zu dieser Nachricht kommen ) Bei GLBL-Print wird die Datei in der Kommandozeile im Hintergrund gedruckt. Falls die Kommandozeile keine Datei enth„lt, erscheint der GLBL-Print Hauptdialog Msg%(3)=High-Word der Adresse der Kommandozeile Msg%(4)=Low-Word der Adresse der Kommandozeile Dieser Pointer darf auch 0 sein Zu diesen Protokollfunktionen sollten Sie auch die Dokumentation von GEMINI zu rate ziehen Wenn Sie irgendwelche Fragen zu GEMLABEL oder GLBL-Print haben, egal ob als Programmierer oder Anwender, k”nnen Sie sich an mich wenden: Volker Janzen bei Mattes Haslacher Weg 17 89075 Ulm